import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

import java.util.*;

public class Collections {
    //集合类  是一种工具类  提供了一些比较便捷的操作数据的方法  数据结构的包装类
    //数组 List  不能扩容 删除 插入 非常麻烦 效率低   扩容 潜在麻烦比较多 查找效率高
    //int [] a = new int[5]; //缺点，长度固定
    //LinkedList 通过内存指针形式解决了 删除 插入 扩容的问题  查找效率低
    //单列集合list.add("值")属于collection    有 List：允许有重复元素的  有序的   Set：不允许有重复元素的 根据hashcode和equals方法判定元素是否相同 先判断hashcode再判断equals 无序集合  Queue：队列
    //List   ArrayList  LinkedList
    //Set  HashSet：无序集合 根据hashcode和equals   TreeSet：有序集合 没有重复数据 通过 compare比较器  需要实现 comparable 接口
    //HashMap
    //TreeMap
    //
    // 双列集合add("字段","值")属于MAP

    //ArrayList 可以扩容
    public static void main(String[] args) {

//        HashMap<String,String> map = new HashMap();
//        map.put("laowang","28");
//        map.put("laowang1","29");
//        map.put("laowang2","30");

//        System.out.println(map.get("laowang"));
//        map.remove("laowang");
//        map.containsKey("laowang1"); //判断是否存在
//        Set<String> set = map.keySet(); //获取所有的key，根据key搜索键值
//        for(String k : set){
//            System.out.println(k);
//            System.out.println(map.get(k));
//        }

//        Set<Map.Entry<String,String>> entry = map.entrySet(); //将键值拆成一个一个的
//        for(Map.Entry entry1 : entry){
//            System.out.println(entry1.getKey());
//            System.out.println(entry1.getValue());
//        }






        TreeSet<User> set = new TreeSet();
        set.add(new User("axiba",15));
        set.add(new User("axiba",15));
        set.add(new User("axiba",28));
        Iterator<User> iterator = set.iterator(); //迭代集合的
        while(iterator.hasNext()){
            iterator.next();
        }

//        for(User a:set){ //若想使用 超级for循环迭代集合，需要集合是可以继承Iterable的
//           System.out.println(a.toString());
//        }





//        HashSet<User> set = new HashSet();
//        set.add(new User("axiba",15));
//        set.add(new User("axiba",15));
//        set.add(new User("axiba",28));
//
//        for(User a:set){
//            System.out.println(a.toString());
//        }

//        set.add("laowang1");
//        set.add("laowang1");
//        set.add("laowang3");
//        for(String s : set){ //超级for循环
//            System.out.println(s);
//        }



        //LinkedList list = new LinkedList();//链表结构 解决了 删除 插入 扩容 麻烦的问题




    }

}
